#if !defined(FAKE_D3D11_DEPTH_STENCIL_VIEW_H)
#define FAKE_D3D11_DEPTH_STENCIL_VIEW_H

#include <d3d11.h>
#include "Fakes/FakeD3D11View.h"

class FakeD3D11DepthStencilView : public ID3D11DepthStencilView
{
public:
	FakeD3D11DepthStencilView()
		: View()
	{ }

	CONTAIN_VIEW(View);

	virtual void STDMETHODCALLTYPE GetDesc(D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) { throw rt::NotImplementedException(); }
};

#define CONTAIN_DEPTH_STENCIL_VIEW(member_) \
	CONTAIN_VIEW(View); \
	FakeD3D11DepthStencilView member_; \
	virtual void STDMETHODCALLTYPE GetDesc(D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc) { return member_.GetDesc(pDesc); }

#endif
